interface InfoInter {
  name: string;
  getRes(input: string): number
}

interface InfoInter {
  name: string;
  getRes(input: number): string
}

let infoInter: InfoInter

infoInter = {
  name: 'lison',
  getRes(text: any): any {
    if (typeof text === 'string') {
      return text.length
    } else {
      return String(text)
    }
  }
}

console.log(infoInter.getRes('123'));

// 命名空间
// namespace Validations {
//   export const numberReg = /^[0-9]+$/ // 如果不用export，相同名字的命名空间是拿不到变量值的
//   export const checkNumber = () => {}
// }

// namespace Validations {
//   console.log(numberReg);  // 如果上个命名空间中没用export，这里是undefined
//   export const checkLetter = () => {}
// }

// class Validations {
//   constructor() {}
//   public checkType() {}
// }

// namespace Validations {
//   export const numberReg = /^[0-9]+$/
// }

// console.dir(Validations.numberReg)

function countUp() {
  countUp.count++
}
namespace countUp {
  export let count = 0
}

console.log(countUp.count)


// 枚举和命名空间合并
enum Colors {
  red,
  green,
  blue
}

namespace Colors {
  export const yellow =3
}

console.log(Colors);

